/**
 * 递归合并对象，包括深层嵌套的对象
 * @param {Object} target - 目标对象，合并结果将存储在此对象中
 * @param {Object} source - 源对象，其属性将被合并到目标对象
 * @returns {Object} - 合并后的对象
 */
/**
 * 递归合并对象，包括深层嵌套的对象，不会修改原始对象
 * @param {...Object} objects - 要合并的对象列表
 * @returns {Object} - 合并后的新对象
 */
export const deepMerge = (...objects) => {
  // 创建一个空对象作为结果
  const result = {}

  // 遍历所有传入的对象
  for (const obj of objects) {
    // 跳过非对象和null
    if (!obj || typeof obj !== 'object') continue

    // 遍历当前对象的所有属性
    for (const key in obj) {
      // 确保只处理对象自身的属性（非继承属性）
      if (Object.prototype.hasOwnProperty.call(obj, key)) {
        const value = obj[key]

        // 如果值是对象且不是数组或null
        if (value && typeof value === 'object' && !Array.isArray(value) && value !== null) {
          // 如果结果对象中已存在该属性且是对象，则递归合并
          if (result[key] && typeof result[key] === 'object' && !Array.isArray(result[key]) && result[key] !== null) {
            result[key] = deepMerge(result[key], value)
          } else {
            // 否则创建一个新对象（深拷贝）
            result[key] = deepMerge({}, value)
          }
        } else if (Array.isArray(value)) {
          // 对于数组，创建一个新数组（深拷贝）
          result[key] = [...value]
        } else {
          // 对于基本类型值，直接赋值
          result[key] = value
        }
      }
    }
  }

  return result
}
export const echartConfig = {
  title: {
    padding: [5, 0, 0, 0],
  },
  tooltip: {
    trigger: 'axis',
    formatter: function (params) {
      let result = params[0].name + '<br/>'
      params.forEach((param) => {
        result += param.marker + ' ' + param.seriesName + ': ' + param.value + '<br/>'
      })
      return result
    },
    axisPointer: {
      type: 'cross',
      label: {
        backgroundColor: '#6a7985',
      },
    },
  },
  xAxis: {
    type: 'category',
    axisLabel: {
      rotate: 45,
      fontSize: 12,
    },
  },
  yAxis: {
    type: 'value',
    name: '数据',
  },
  grid: {
    left: '0%',
    right: '0%',
    top: '40px',
    bottom: '40px',
    containLabel: true,
  },
}
